package com.common.event.listener;

import com.common.event.EventMessage;
import com.common.event.tuple.TwoTuple;

/**
 * 
* @Title: EventListener.java 
* @Package com.common.event.listener
* @Description: 事件消息监听器接口
* @author tangzhibin
* @date 2016年9月28日 
* @version V1.0
 */
public interface EventMessageListener {
	
	/***
	 * 具体处理事件的方法；子类可实现此方法
	 * @param eventMessage
	 * @return TwoTuple<是否成功,此步骤返回的业务数据，根据具体需要决定是否需要返回，不返回可以直接返回null>
	 */
	public <T> TwoTuple<Boolean,T> doEvent(EventMessage eventMessage);
	
	/***
	 * 具体处理事件之后的方法；子类可实现此方法
	 * @param eventMessage
	 * @param bizData 可传的业务对象(根据具体需要决定是否需要传入)
	 * @return
	 */
	public <T>  boolean doEventAfter(EventMessage eventMessage,T bizData);
}
